Skip to content

fix(10.x.x): SYNC_EXHAUSTION stops dispatching after a DataLoader cache hit on a completed future. - #2215

Merged
samuelAndalon merged 1 commit into
ExpediaGroup:10.x.xfrom
eocantu:fix/sync-exhaustion-cache-hit-dispatch
Oct 5, 2026
Merged

samuelAndalon merged 1 commit into
ExpediaGroup:10.x.xfrom
eocantu:fix/sync-exhaustion-cache-hit-dispatch

Conversation

@eocantu

@eocantu eocantu commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

📝 Description

With SYNC_EXHAUSTION, a DataLoader.load() that hits the cache on an already completed future drives onDispatchAllLoadCounter to -1. That stops all further dispatching for the request, so later loads never complete and the operation hangs.

Each load is now decremented from the counter it was added to. takeSnapshot() swaps counter instances, and the dispatcher keeps a per-load context. The old public tracking methods are deprecated; there are no API or binary changes.

🔗 Related Issues

Counter-based dispatch state introduced in #2106.

@samuelAndalon
samuelAndalon merged commit afbe80f into ExpediaGroup:10.x.x Oct 5, 2026
8 checks passed
samuelAndalon pushed a commit that referenced this pull request Oct 5, 2026
…n a completed future (#2221)

### 📝 Description

Cherry-picks afbe80f
(#2215)

### 🔗 Related Issues
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants